home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / var / lib / dpkg / info / module-init-tools.preinst < prev    next >
Encoding:
Text File  |  2007-04-03  |  2.8 KB  |  111 lines

  1. #!/bin/sh -e
  2.  
  3. TO_DIVERT="depmod insmod update-modules modinfo"
  4. TO_DIVERT_NOMAN="kallsyms ksyms"
  5. TO_DIVERT_L="lsmod modprobe rmmod"
  6.  
  7. divert_gen() {
  8.     DEXT=${3:-modutils}
  9.     dpkg-divert --add --rename --package module-init-tools \
  10.     --divert $2/$1.$DEXT $2/$1 > /dev/null
  11. }
  12.  
  13. divert_man() {
  14.     DSECTION=${2:-8}
  15.     for locale in '' fr/; do
  16.     dpkg-divert --add --rename --package module-init-tools --divert \
  17.         /usr/share/man/${locale}man$DSECTION/$1.modutils.$DSECTION.gz \
  18.         /usr/share/man/${locale}man$DSECTION/$1.$DSECTION.gz > /dev/null
  19.     done
  20. }
  21.  
  22. undivert_man() {
  23.     DSECTION=${2:-8}
  24.     for locale in '' fr/; do
  25.     dpkg-divert --remove --rename --package module-init-tools --divert \
  26.         /usr/share/man/${locale}man$DSECTION/$1.modutils.$DSECTION.gz \
  27.         /usr/share/man/${locale}man$DSECTION/$1.$DSECTION.gz > /dev/null
  28.     done
  29. }
  30.  
  31. create_compat_symlinks() {
  32.     # The links must be created even if modutils has not been installed,
  33.     # because it could be installed after m-i-t.
  34.     # -f should not be needed, but some people break their own systems
  35.     # and then complain about module-init-tools. See #225236 for an example.
  36.     [ -L /bin/lsmod.modutils ] || \
  37.     ln -sf /sbin/lsmod.modutils /bin/lsmod.modutils
  38.     [ -L /sbin/ksyms ] || ln -sf insmod.modutils /sbin/ksyms
  39.     [ -L /sbin/kallsyms ] || ln -sf insmod.modutils /sbin/kallsyms
  40.     return 0
  41. }
  42.  
  43. upgrade_quirks() {
  44.   [ "$2" ] || return 0
  45.  
  46.   dpkg --compare-versions $2 lt 3.2-pre9-4 || return 0
  47.   rm -f /usr/share/man/man8/kallsyms.8.gz /usr/share/man/man8/ksyms.8.gz
  48.   for cmd in kallsyms ksyms; do
  49.     undivert_man $cmd
  50.   done
  51.  
  52.   dpkg --compare-versions $2 lt 3.1-pre2-1 || return 0
  53.   # just delete /etc/modprobe.conf if it's the one installed by old packages
  54.   CONF_MD5='bf228fe320e2932bc34ba424d3ed2a5e  /etc/modprobe.conf'
  55.   if [ -f /etc/modprobe.conf ] \
  56.     && echo "$CONF_MD5" | md5sum -c 2> /dev/null; then
  57.     rm /etc/modprobe.conf
  58.   fi
  59.  
  60.   # or if it is empty
  61.   if [ -s /etc/modprobe.conf ]; then 
  62.     rm /etc/modprobe.conf
  63.   fi
  64.  
  65.   if [ -f /etc/modprobe.conf ]; then
  66.     [ -d /etc/modprobe.d/ ] || mkdir /etc/modprobe.d/
  67.     grep -Ev '^include +/lib/modules/modprobe.conf *$' /etc/modprobe.conf \
  68.     > /etc/modprobe.d/old_etc_modprobe.conf || true
  69.     rm /etc/modprobe.conf
  70.   fi
  71.  
  72.   rm -f /lib/modules/modprobe.conf*
  73.   return 0
  74. }
  75.  
  76. case "$1" in
  77.     install|upgrade)
  78.  
  79.     for cmd in $TO_DIVERT; do
  80.         divert_gen $cmd /sbin
  81.         divert_man $cmd
  82.     done
  83.     for cmd in $TO_DIVERT_NOMAN; do
  84.         divert_gen $cmd /sbin
  85.     done
  86.     for cmd in $TO_DIVERT_L; do
  87.     if [ ! -L /sbin/$cmd.modutils ]; then
  88.         ln -s insmod.modutils /sbin/$cmd.modutils
  89.     fi
  90.         divert_gen $cmd /sbin Lmodutils
  91.         divert_man $cmd
  92.     done
  93.     divert_man modules 5
  94.  
  95.     create_compat_symlinks
  96.     upgrade_quirks "$@"
  97.     ;;
  98.  
  99.     abort-upgrade)
  100.     ;;
  101.  
  102.     *)
  103.     echo "$0 called with unknown argument '$1'" >&2
  104.     exit 1
  105.     ;;
  106. esac
  107.  
  108.  
  109.  
  110. exit 0
  111.